package com.electromagnetic.industry.software.manage.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.electromagnetic.industry.software.manage.pojo.models.Role;
import com.electromagnetic.industry.software.manage.pojo.req.RoleDTO;
import com.electromagnetic.industry.software.manage.pojo.req.RolePageDTO;

import java.util.HashMap;
import java.util.List;

public interface RoleService extends IService<Role> {

    /**
     * 新建角色
     *
     * @param roleDTO
     * @return
     */
    Boolean createRole(RoleDTO roleDTO);

    /**
     * 更新角色
     *
     * @param roleDTO
     * @return
     */
    Boolean updateRole(RoleDTO roleDTO);

    /**
     * 删除角色
     *
     * @param roleId
     * @return
     */
    Boolean deleteRole(String roleId);

    /**
     * 查看角色
     *
     * @param roleId
     * @return
     */
    RoleDTO getRole(String roleId);

    /**
     * 查看角色列表
     *
     * @param rolePageDTO
     * @return
     */
    IPage<RoleDTO> getRoles(RolePageDTO rolePageDTO);

    /**
     * 获取所有角色名
     *
     * @return
     */
    List<HashMap<String, String>> getAllRoleNames();

    /**
     * 通过角色名称查看角色权限
     *
     * @param roleName
     * @return
     */
    RoleDTO getRoleByName(String roleName);

    /**
     * 空树
     *
     * @return
     */
    RoleDTO getRoleTemplate();
}

